package com.sumainfor.pc.market.service;

import com.sumainfor.common.util.ContextUtils;
import com.sumainfor.common.util.JsonResult;
import com.sumainfor.common.utlis.ParamsCommon;
import com.sumainfor.pc.market.dao.DmCommunityMapper;
import com.sumainfor.pc.market.feign.Zfeign.ZzuulFeign;
import org.apache.commons.collections.MapUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.locks.ReentrantLock;

/**
 * @Date 2018年11月7日
 * @Describe 小区项目
 */
@Service
public class DmCommunityService implements Serializable {

    private ReentrantLock lock = new ReentrantLock(false);

    Logger log = LoggerFactory.getLogger(DmCommunityService.class);// 日志

    @Autowired
    private DmCommunityMapper dmCommunityMapper;
    @Autowired
    private ZzuulFeign zzuulFeign;
    private
    String UUID=null;
    /**
     * 分页查询项目列表
     */
    public List<Map<String,Object>> getCommunityList(Map<String, Object> params){
        List<Map<String,Object>> list=dmCommunityMapper.getCommunityList(params);
        List<String> idList=new ArrayList<String>();//保存服务中心的编号
        for (Map<String,Object> map: list) {
            if (map.get("MiId")!=null){
                idList.add(map.get("MiId").toString());
            }
        }
        if (idList.size()>0){
            System.out.println("传递到网关的数据:"+params);
            JsonResult result=zzuulFeign.getDeptNameByDeptId(idList);//根据服务中心编号查询服务中心的名字
            System.out.println("网关查询到的数据"+result);
            List<Map<String,Object>> zuulList=(List<Map<String,Object>>)result.get("result");
            if (result.get("errorCode").equals("0")) {
                for (Map<String, Object> map : list) {
                    for (Map<String, Object> map2 : zuulList) {
                        if (map.get("MiId")!=null) {
                            if (MapUtils.getString(map, "MiId").equals(MapUtils.getString(map2, "dept_id"))) {
                                map.putAll(map2);
                            }
                        }
                    }
                }
            }
        }
        return list;
    }
    /**
     * 查询项目总数
     */
    public Integer getCommunityListCount(Map<String, Object> params){
        return  dmCommunityMapper.getCommunityListCount(params).size();
    }
    /**
     * 修改项目--更改服务中心编号
     */
    public Integer updateCommunity(Map<String, Object> params){
        Integer result=0;
        //修改项目--修改服务中心
        params.put("by", ContextUtils.getUserId());//操作人
        params.put("term", "2");// 更新端 Update端： 1 租客端 2市场部 3 工程部   4运营部   5财务部  6总经办 7发展部
        params.put("fnc",
                this.getClass().getSimpleName() + "." + Thread.currentThread().getStackTrace()[1].getMethodName());// 创建Function名
        ParamsCommon.commonUpdateParms(params);
        result = dmCommunityMapper.updateCommunity(params);
        return result;
    }
}
